package day04;

import java.util.*;

public class MapMobileAddressBook {
    private Map<String, Set<Person>> map;
    private Set<Person> SetPerson;

    public MapMobileAddressBook() {
        // 可以在这里进行一些默认初始化，比如创建空的 map 和 set
        map = new HashMap<>();
        SetPerson = new HashSet<>();

        map.put("family", new HashSet<>());
        map.put("colleagues", new HashSet<>());
        map.put("friends", new HashSet<>());
    }

    public Map<String, Set<Person>> getMap() {
        return map;
    }

    public void addContactPerson(String name, String number, String group) {
        Person person = new Person(name, number, group);
        if (!SetPerson.contains(person)) {
            SetPerson.add(person);
            if (checkgroup(group)) {
                map.put(group, new HashSet<>());
                System.out.println("没有这个分组，已经重新建立好新的分组٩(๑˃̵ᴗ˂̵๑)۶");
            }
            Set<Person> newSetPerson = map.get(group);
            //这个 Map<String, Set<ContactPerson>> 中根据给定的分组名称 group 获取对应的联系人集合。
            //如果该分组在 groupMap 中不存在，
            //则返回一个新的空的 TreeSet<ContactPerson>。
            newSetPerson.add(person);
        } else {
            System.out.println("已经存在联系人" + name + "!!!");
        }
    }

    private boolean checkgroup(String group) {
        for (String checkgroup1 : map.keySet()) {
            if (group.equals(checkgroup1)) {
                return false;
            }
        }
        return true;
    }
}